//
//  ByBaseVC.h
//  Private_Object
//
//  Created by pro on 16/9/18.
//  Copyright © 2016年 pro. All rights reserved.
//

#import <UIKit/UIKit.h>

#import "UIViewController+XWTransition.h"               // 拓展modal转场相关类目
//#import "UIViewController+LJWKeyboardHandlerHelper.h"   // 键盘辅助（点击输入框，自动根据键盘改变输入框位置）

// 动画
#import "ByNormalPushAnimator.h"                        // 自定义转场动画控制器
#import "BySideslipAnimator.h"                          // 自定义转场动画控制器
#import "ByBottomPopAnimator.h"

/** 朱凯 982942570@qq.com */
// 导航栏按钮的类型
typedef enum : NSUInteger {
    ByNavigationItemModeImage         = 1 << 0,  // 图片
    ByNavigationItemModeText          = 1 << 1,  // 文字
    ByNavigationItemModeImageAndText  = 1 << 2,  // 图文（图片在上，文字在下），图文字符串需要统一
} ByNavigationItemMode;

typedef enum : NSUInteger {
    ByNavigationItemPositionModeLeft  = 1 << 10, // 左侧
    ByNavigationItemPositionModeRight = 1 << 11, // 右侧
} ByNavigationItemPositionMode;

@interface ByBaseVC : UIViewController

#pragma mark - 
// 1.基本转场动画
@property (nonatomic, strong) ByNormalPushAnimator *normalPushAnimator;
// 2.侧滑转场动画
@property (nonatomic, strong) BySideslipAnimator *sideslipAnimator;
// 3.仿淘宝详情规格选择动画
@property (nonatomic, strong) ByBottomPopAnimator *bottomPopAnimator;
// 侧滑和底部弹出视图返回回调设置，不设置则不能点击阴影返回
@property (nonatomic, copy) void(^backCongfig)(void);

#pragma mark - 自定义基类方法（有的可直接调用，有的则需要覆写）
/** 快捷设置导航栏属性，在viewWillAppear 方法中调用该方法并设置需要的状态
 translucent: YES->半透明 NO->非半透明
 light:       YES->白色 NO->黑色
 */
- (void)setNaviAttributeWithTranslucent:(BOOL)translucent
                   stateBarLightContent:(BOOL)light;

// 创建导航栏返回按钮
- (void)addLeftBackBarButtonItem;

// 创建导航栏有色返回按钮
- (void)addLeftColorBackBarButtonItem;

// 设置导航栏上控件的颜色
@property (nonatomic, strong) UIColor *tintColor;
// 自定义item
- (void)addCustomItemviews:(NSArray *)views
                  position:(ByNavigationItemPositionMode)position;
// 用已有的枚举创建item
- (void)addBYItemviews:(NSArray *)itemStrs
                  mode:(ByNavigationItemMode)mode
              position:(ByNavigationItemPositionMode)position;
// 左右控件点击事件，外部开放接口
- (void)leftItemsAction:(NSInteger)leftIndex;
- (void)rightItemsAction:(NSInteger)rightIndex;

// push
- (void)by_normalPush:(UIViewController *)vc hasNavi:(BOOL)hasNavi;
// pop
- (void)by_normalPopVC:(NSString *)vcNmme;

@end
